# 引用sys模块
import sys
# 简单的银行操作系统，仅实现简易的登陆，取款，存款，查询余额，退出功能
# 储存用户信息，信息包含账号，密码，姓名和余额
customer = [
{'account':'11223344','password':'1234','name':'lisi','balance':900},
{'account':'22334455','password':'2345','name':'zhangsan','balance':1800},
{'account':'33445566','password':'3456','name':'wangwu','balance':500},
{'account':'44556677','password':'4567','name':'xiaoming','balance':700},
{'account':'55667788','password':'5678','name':'xiaohuang','balance':1200}
]

# 取款功能
def deposit():
    print('='*10,'存款功能','='*10)
    # 使用变量depo_money来接收用户输入的取款金额
    depo_money = input('请输入存款金额： ')
    # 将depo_money进行强制转换为int类型
    de_money = int(depo_money)
    # 使用s_balance接收用户列表中的余额
    s_balance = customer[i]['balance']
    # 进行将原余额和用户存款的金额相加
    new_balance = s_balance + de_money
    # 使用新的余额覆盖原余额
    customer[i]['balance'] = new_balance
    # 输出存款成功提示和金额
    print('存款成功，您当前的余额为：',customer[i]['balance'])

# 取款功能
def withdraw():
    print('=*10','取款功能','='*10)
    # 输出当前余额
    print('当前余额：',customer[i]['balance'])
    # 获取用户取款金额
    w_money = input('请输入取款金额：')
    # 进行数据类型转换，将字符串转为整型
    wi_money = int(w_money)
    # 获取原余额
    s_balance = customer[i]['balance']
    # 进行判断，如果用户输入的金额大于原余额，则返回金额不足
    # 如果用户输入的金额小于原余额且不等于0，将原余额和用户输入的金额相减
    if wi_money > s_balance:
        print('抱歉，账户余额不足')
        withdraw()
    elif 0< wi_money < s_balance:
        new_balance = s_balance - wi_money
        # 新余额覆盖原余额
        customer[i]['balance'] = new_balance
        print('取款成功，您当前的余额为：',customer[i]['balance'])
    else:
        print('请输入不为零的金额：')
        withdraw()

# 显示菜单功能
def meau():
    print('='*10,'自动取款机','='*10)
    print('{:1} {:6} {:10}'.format(' ','1.查询余额 ','2.存款'))
    print('{:1} {:8} {:10}'.format(' ','3.取款', '4.退出系统'))
    key = input('请输入对应操作: ')
    # 通过用户的输入来执行功能
    if key == '1':
        print('您当前的账户余额为：',customer[i]['balance'])
        input('按下回车继续：')
        meau()
    elif key == '2':
        deposit()
        input('按下回车继续：')
        meau()
    elif key == '3':
        withdraw()
        input('按下回车继续：')
        meau()
    elif key == '4':
        logout()
        sys.exit()
    else:
        print('操作无效,请重新输入')
        meau()
# 退出系统，在此只输出'再见'
def logout():
    print('感谢您的使用，再见')

# 程序入口
while True:
    print('='*10,'欢迎使用自动取款机','='*10)
    # 接收用户输入的账号和密码
    i_account = input('请输入账号：')
    i_password = input('请输入密码：')
    # 判断账号和密码是否等于customer里的账号和密码
    # 如果等于，执行菜单功能，如果不等于，显示账号密码错误，登陆失败
    for i,isCom in enumerate(customer):
        if isCom['account'] == i_account and isCom['password'] == i_password:
            print('欢迎用户：', customer[i]['name'])
            meau()
        elif isCom['account'] == i_account and isCom['password'] != i_password:
            print('密码错误，请重新输入')
            break
    print('该用户未注册，请重新输入')


'''
遇到的问题：
1.在meau函数内，elif key = '3'和key = '4'这两个分支下写break提示不在循环内（缩进没出错）
2.在写登陆功能时，执行了if条件后，为什么还会执行else条件
3.在执行账号正确，密码错误的条件好，怎么写能不执行print('该用户未注册，请重新输入')
'''